package com.reflex.method;

import java.awt.*;
import java.lang.reflect.Method;

/**
 * @Author: lizehui
 * @Description: 通过反射机制使用类中方法
 * @Date: 2022/11/22/13:30
 */
public class ReflectionMethod {

    public static void main(String[] args) throws Exception{
        //1、得到Boss类对应Class
        Class cls = Class.forName("com.reflex.dao.Boss");
        //2、创建实例对象
        Object o = cls.newInstance();
        //3、调用public的hi方法
        //3.1、得到hi方法对象
        Method hi = cls.getMethod("hi",String.class);
        //3.2、调用
        hi.invoke(o,"李泽辉");

        //4、调用private static方法
        //4.1、得到方法对象
        Method say = cls.getDeclaredMethod("say", int.class, String.class, char.class);
        //4.2、爆破方法
        say.setAccessible(true);
        //4.3、调用
        say.invoke(o,1,"use",'a');
        say.invoke(null,2,"use2",'b');
    }


}
